package cn.iocoder.yudao.module.system.controller.admin.examcontrolline.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;

/**
 * 特控线配置 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ExamControlLineBaseVO {

    @Schema(description = "考试ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "考试ID不能为空")
    @ExcelProperty("考试ID")
    private Long examId;

    @Schema(description = "特控线名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024年山东省一本线")
    @ExcelProperty("特控线名称")
    private String lineName;

    @Schema(description = "线类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "一本线")
    @ExcelProperty("线类型")
    private String lineType;

    @Schema(description = "分数线", requiredMode = Schema.RequiredMode.REQUIRED, example = "520.0")
    @ExcelProperty("分数线")
    private BigDecimal scoreLine;

    @Schema(description = "换算比例", example = "1.0000")
    @ExcelProperty("换算比例")
    private BigDecimal conversionRatio;

    @Schema(description = "对应省份", example = "山东")
    @Size(max = 50, message = "省份长度不能超过50个字符")
    @ExcelProperty("对应省份")
    private String province;

    @Schema(description = "对应年份", example = "2024")
    @ExcelProperty("对应年份")
    private Integer year;

    @Schema(description = "说明", example = "根据2024年山东省高考分数线设置")
    @Size(max = 500, message = "说明长度不能超过500个字符")
    @ExcelProperty("说明")
    private String description;

    @Schema(description = "物理类特控线", example = "530.0")
    @ExcelProperty("物理类特控线")
    private BigDecimal physicsScoreLine;

    @Schema(description = "历史类特控线", example = "520.0")
    @ExcelProperty("历史类特控线")
    private BigDecimal historyScoreLine;

    @Schema(description = "物理类省控线", example = "525.0")
    @ExcelProperty("物理类省控线")
    private BigDecimal physicsProvinceControlLine;

    @Schema(description = "历史类省控线", example = "515.0")
    @ExcelProperty("历史类省控线")
    private BigDecimal historyProvinceControlLine;

}